package com.ficus.road.maintain.core.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 告警对象
 *
 * @Author hao.zhou1
 * @Since 2021/4/7 下午6:49
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UrbanRoadData {
    //道路类型 ROAD_TYPE_UNKNOWN-未知; ROAD_TYPE_ASPHALT-柏油路 ROAD_TYPE_CEMENT-沥青路
    String roadType = "ROAD_TYPE_UNKNOWN";
    /**
     * 发生地址
     */
    private String eventAddress;
    /**
     * 问题描述
     */
    private String eventDescription;
    /**
     * 任务发送时间
     */
    private String sendTime;
    /**
     * 处理时间
     */
    private Date dealingTime;
    /**
     * 到场时间
     */
    private String arriveTime;
    /**
     * 最后处置时间
     */
    private Date lastUpdateTime;
    /**
     * 处理备注
     */
    private String solvingNote;
    /**
     * 1:提醒 2:处置 3:复核
     */
    private String flowType;

    /**
     * 关联道路病害信息（若有）
     */
    private CrackData crackData;
    @NoArgsConstructor
    @AllArgsConstructor
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonIgnoreProperties(ignoreUnknown = true)
    @Data
    public static class CrackData{
        /**
         * 病害ID
         */
        @JsonProperty("sid")
        private String sid;
        /**
         *发现时间
         */
        @JsonProperty("stime")
        private String stime;
        /**
         * 设备ID
         */
        @JsonProperty("deviceId")
        private String deviceId;
        /**
         *图片链接
         */
        @JsonProperty("picUrl")
        private String picUrl;
        /**
         *经度
         */
        @JsonProperty("lgt")
        private double lgt;
        /**
         *纬度
         */
        @JsonProperty("lat")
        private double lat;
        /**
         *养护单位
         */
        @JsonProperty("unitId")
        private String unitId;
        /**
         *处置状态1:派单2:处理3:反馈:4完成
         */
        @JsonProperty("status")
        private int status;
        /**
         *反馈状态 1 确认, 2 待确认
         */
        @JsonProperty("feedback")
        private int feedback;
        /**
         *道路编码
         */
        @JsonProperty("roadId")
        private String roadId;
    }

}
